import zh_CN from 'vee-validate/dist/locale/zh_CN';
import VeeValidator, {Validator} from 'vee-validate';

// 设置提示语言

Validator.addLocale(zh_CN);

// 修改默认提示语

const customDictionary = {
  zh_CN: {
    messages: {
      confirmed: () => '两次密码输入不一致哦.',
      required: (name) => name + ' 是必填字段.',
      min_value: (name, value) => name + '的最小值是' + value,
      max_value: (name, value) => name + '的最大值是' + value
    }
  }
};
Validator.updateDictionary(customDictionary);

// 自定义验证规则和提示信息

Validator.extend('tel', {
  messages: {
    zh_CN: field => '手机号 格式不正确哦.'
  },
  validate: value => {
    // 解决复制苹果手机号首尾的隐藏空白字符
    value = value.replace(/[\u202d]|[\u202c]/g, '');
    return /^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|166|17[0-9]|18[0|1|2|3|5|6|7|8|9]|19[0|1|2|3|5|6|7|8|9])\d{8}$/.test(value);
  }
});
Validator.extend('userName', {
  messages: {
    zh_CN: field => '姓名 不能含有非法字符哦.'
  },
  validate: value => {
    return /^[\u4e00-\u9fa5]{0,}$/.test(value);
  }
});
Validator.extend('idNum', {
  messages: {
    zh_CN: field => '身份证 格式不正确.'
  },
  validate: value => {
    return /(^\d{17}[Xx]$)|(^\d{18}$)/.test(value);
  }
});
Validator.extend('bankNum', {
  messages: {
    zh_CN: field => '银行卡号 只能包含数字字符.'
  },
  validate: value => {
    value = value.replace(/\s*/g, '');
    return /^[0-9]*$/.test(value);
  }
});
Validator.extend('bankLength', {
  messages: {
    zh_CN: field => '银行卡号 长度为12到19位.'
  },
  validate: value => {
    value = value.replace(/\s*/g, '');
    return /^\d{12,19}$/.test(value);
  }
});

// 自定义配置
const VeeValidatorConfig = {
  errorBagName: 'VeeErrors',
  locale: 'zh_CN',
  events: 'blur'
};

export default {
  VeeValidator, VeeValidatorConfig
}
